package com.yehangtech.designpattern.行为型_中介者模式;

import com.yehangtech.designpattern.行为型_中介者模式.service.impl.HouseOwner;
import com.yehangtech.designpattern.行为型_中介者模式.service.impl.MediatorStructure;
import com.yehangtech.designpattern.行为型_中介者模式.service.impl.Tenant;

/**
 * 如果在一个系统中对象之间存在多对多的相互关系，我们可以将对象之间的一些交互行为的细节从各个对象中分离出来，并集中封装在一个中介者对象中，
 * 并由该中介者进行统一协调，这样对象之间多对多的复杂关系就转化为相对简单的一对多关系。
 */
public class Main {
    public static void main(String[] args) {
        //一个房主、一个租房者、一个中介机构
        MediatorStructure mediator = new MediatorStructure();

        //房主和租房者只需要知道中介机构即可
        HouseOwner houseOwner = new HouseOwner("张三", mediator);
        Tenant tenant = new Tenant("李四", mediator);

        //中介结构要知道房主和租房者
        mediator.setHouseOwner(houseOwner);
        mediator.setTenant(tenant);

        tenant.constact("需要租三室的房子");
        houseOwner.constact("我这有三室的房子，你需要租吗？");
    }
}
